Commit ef18642b authored by Sean McGivern's avatar Sean McGivern

Merge branch '59062-update-gitlab-markup-python-3' into 'master'

Update gitlab-markup to 1.7.0 and document Python3 requirements

Closes #59062

See merge request gitlab-org/gitlab-ce!26246
parents 8d07bc9c e5af7d83
......@@ -116,7 +116,7 @@ gem 'seed-fu', '~> 2.3.7'
# Markdown and HTML processing
gem 'html-pipeline', '~> 2.8'
gem 'deckar01-task_list', '2.2.0'
gem 'gitlab-markup', '~> 1.6.5'
gem 'gitlab-markup', '~> 1.7.0'
gem 'github-markup', '~> 1.7.0', require: 'github/markup'
gem 'commonmarker', '~> 0.17'
gem 'RedCloth', '~> 4.3.2'
......
......@@ -286,7 +286,7 @@ GEM
github-markup (1.7.0)
gitlab-default_value_for (3.1.1)
activerecord (>= 3.2.0, < 6.0)
gitlab-markup (1.6.5)
gitlab-markup (1.7.0)
gitlab-sidekiq-fetcher (0.4.0)
sidekiq (~> 5)
gitlab-styles (2.5.1)
......@@ -1020,7 +1020,7 @@ DEPENDENCIES
gitaly-proto (~> 1.13.0)
github-markup (~> 1.7.0)
gitlab-default_value_for (~> 3.1.1)
gitlab-markup (~> 1.6.5)
gitlab-markup (~> 1.7.0)
gitlab-sidekiq-fetcher (~> 0.4.0)
gitlab-styles (~> 2.4)
gitlab_omniauth-ldap (~> 2.1.1)
......
[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true
[dev-packages]
[packages]
docutils = "==0.13.1"
[requires]
python_version = "3.4"
{
"_meta": {
"hash": {
"sha256": "ec82d5e7c10fd591aeebbc9b7b62d730f7fd70dc52e4e4818834891aa4194c73"
},
"pipfile-spec": 6,
"requires": {
"python_version": "3.4"
},
"sources": [
{
"name": "pypi",
"url": "https://pypi.org/simple",
"verify_ssl": true
}
]
},
"default": {
"docutils": {
"hashes": [
"sha256:718c0f5fb677be0f34b781e04241c4067cbd9327b66bdd8e763201130f5175be",
"sha256:cb3ebcb09242804f84bdbf0b26504077a054da6772c6f4d625f335cc53ebf94d",
"sha256:de454f1015958450b72641165c08afe7023cd7e3944396448f2fb1b0ccba9d77"
],
"index": "pypi",
"version": "==0.13.1"
}
},
"develop": {}
}
---
title: Update gitlab-markup to 1.7.0 which requies python3
merge_request: 26246
author:
type: changed
......@@ -22,6 +22,7 @@
text should be _sorry, we could not create your account because:_
1. Code should be written in [US English][us-english]
1. [Go](../go_guide/index.md)
1. [Python](../python_guide/index.md)
This is also the style used by linting tools such as
[RuboCop](https://github.com/bbatsov/rubocop) and [Hound CI](https://houndci.com).
......
# Python Development Guidelines
GitLab requires Python as a dependency for [reStructuredText](http://docutils.sourceforge.net/rst.html)
markup rendering.
As of GitLab 11.10, we require Python 3.
## Installation
There are several ways of installing python on your system. To be able to use the same version we use in production,
we suggest you use [pyenv](https://github.com/pyenv/pyenv). It works and behave similar to its counterpart in the
ruby world: [rbenv](https://github.com/rbenv/rbenv).
### macOS
To install `pyenv` on macOS, you can use [Homebrew](https://brew.sh/) with:
```bash
brew install pyenv
```
### Linux
To install `pyenv` on Linux, you can run the command below:
```bash
curl https://pyenv.run | bash
```
Alternatively, you may find `pypenv` available as a system package via your distro package manager.
You can read more about it in: <https://github.com/pyenv/pyenv-installer#prerequisites>.
### Shell integration
Pyenv installation will add required changes to Bash. If you use a different shell,
check for any additional steps required for it.
For Fish, you can install a plugin for [Fisherman](https://github.com/fisherman/fisherman):
```bash
fisher add fisherman/pyenv
```
Or for [Oh My Fish](https://github.com/oh-my-fish/oh-my-fish):
```bash
omf install pyenv
```
## Dependency management
While GitLab doesn't directly contain any Python scripts, because we depend on Python to render
[reStructuredText](http://docutils.sourceforge.net/rst.html) markup, we need to keep track on dependencies
on the main project level, so we can run that on our development machines.
Recently, an equivalent to the `Gemfile` and the [Bundler](https://bundler.io/) project has been introduced to Python:
`Pipfile` and [Pipenv](https://pipenv.readthedocs.io/en/latest/).
You will now find a `Pipfile` with the dependencies in the root folder. To install them, run:
```bash
pipenv install
```
Running this command will install both the required Python version as well as required pip dependencies.
## Use instructions
To run any python code under the Pipenv environment, you need to first start a `virtualenv` based on the dependencies
of the application. With Pipenv, this is a simple as running:
```bash
pipenv shell
```
After running that command, you can run GitLab on the same shell and it will be using the Python and dependencies
installed from the `pipenv install` command.
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