Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • pagoda/tools/mkdocs_template
1 result
Show changes
Commits on Source (21)
Showing
with 2025 additions and 187 deletions
......@@ -18,7 +18,7 @@ workflow:
- if: $CI_COMMIT_TITLE =~ /.*(WIP|NO-CI|🚧|:construction:).*/
when: never
# Do not run CI if repo is not on framagit
- if: $CI_SERVER_HOST =~ /^framagit.org/
- if: $CI_SERVER_HOST =~ /^gitlab.liris.cnrs.fr/
### BEGIN MKDOCS TEMPLATE ###
### WARNING, DO NOT UPDATE CONTENT BETWEEN MKDOCS TEMPLATE TAG ! ###
......@@ -106,7 +106,7 @@ variables:
# Run jobs in regular docker
.tag_docker: &tag_docker
tags:
- docker
- pagoda_docker
# Stages anchors
# -----------------------------------------------------------------------------
......
### BEGIN MKDOCS TEMPLATE ###
### WARNING, DO NOT UPDATE CONTENT BETWEEN MKDOCS TEMPLATE TAG !###
### Modified content will be overwritten when updating.###
......@@ -23,7 +21,7 @@ workflow:
- if: $CI_COMMIT_TITLE =~ /.*(WIP|NO-CI|🚧|:construction:).*/
when: never
# Do not run CI if repo is not on framagit
- if: $CI_SERVER_HOST =~ /^framagit.org/
- if: $CI_SERVER_HOST =~ /^gitlab.liris.cnrs.fr/
# Stages jobs will pass through with anchors to avoid updating stage in multiple
# place within this file. Now renaming a stage can be done directly after the
......@@ -150,7 +148,7 @@ variables:
# Run jobs in regular docker
.tag_docker: &tag_docker
tags:
- docker
- pagoda_docker
# Stages anchors
# -----------------------------------------------------------------------------
......@@ -425,5 +423,3 @@ inform_triggers_variables:
# vim: fdm=indent
# *****************************************************************************
### END MKDOCS TEMPLATE ###
......@@ -153,10 +153,14 @@ def add_external_to_nav(
repo_parent,
nav_parent[1:],
)
elif repo_dict["online_url"].startswith('/'):
nav.append({
repo_dict["nav_entry"]: repo_dict["online_url"].replace('/','../',1)
})
elif repo_dict["online_url"].startswith("/"):
nav.append(
{
repo_dict["nav_entry"]: repo_dict["online_url"].replace(
"/", "../", 1
)
}
)
else:
nav.append({repo_dict["nav_entry"]: repo_dict["online_url"]})
......@@ -406,9 +410,7 @@ def set_copyright(env: dict, git_repo: git.Repo) -> None:
curr_year = time.strftime("%Y", time.localtime())
if first_year == curr_year:
env.variables[
"date_copyright"
] = f"Copyright © {curr_year}"
env.variables["date_copyright"] = f"Copyright © {curr_year}"
else:
env.variables[
"date_copyright"
......@@ -419,7 +421,6 @@ def set_copyright(env: dict, git_repo: git.Repo) -> None:
] = f"{env.variables['date_copyright']} {env.variables['copyright']}"
def set_repo_name(env: dict, repo_slug: str) -> None:
"""Update content of the `repo_name` key in `env.conf`.
......@@ -834,8 +835,8 @@ def update_version(env: dict) -> None:
minor = int(i_tag[1])
patch = str()
for i_remain_tag in i_tag[2:]:
if i_remain_tag and i_remain_tag not in ("","\n"):
i_remain_tag = i_remain_tag.replace("\n","")
if i_remain_tag and i_remain_tag not in ("", "\n"):
i_remain_tag = i_remain_tag.replace("\n", "")
if not patch:
patch = f"{i_remain_tag}"
else:
......
......@@ -10,11 +10,6 @@ Modified content will be overwritten when updating
<!-- END MKDOCS TEMPLATE -->
Software is under double licensing:
- [MIT License](#mit-license)
- [Beer-Ware License](#the-beer-ware-license)
## MIT License
{{ date_copyright }}
......@@ -41,15 +36,3 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
## The Beer-Ware License
Following maintainers worked on this project:
{% for i_maintainer in curr_repo.maintainers %}
- [{{ i_maintainer.name }}](mailto:{{ i_maintainer.mail }})
{% endfor %}
As long as you retain this notice you can do whatever you want with this stuff.
If we meet some day, and you think this stuff is worth it, you can buy us a
beer in return.
......@@ -49,7 +49,7 @@ theme:
# Light mode
- media: "(prefers-color-scheme: light)"
scheme: rdeville-light
primary: rdeville-green-light
primary: rdeville-deep-purple-light
accent: rdeville-orange-light
toggle:
icon: material/weather-night
......@@ -57,7 +57,7 @@ theme:
# Dark mode
- media: "(prefers-color-scheme: dark)"
scheme: rdeville-dark
primary: rdeville-green-dark
primary: rdeville-deep-purple-dark
accent: rdeville-orange-dark
toggle:
icon: material/weather-sunny
......@@ -202,30 +202,9 @@ markdown_extensions:
# Dictionary storing social icon that will be shown on the bottom right.
extra:
social:
- icon: fontawesome/solid/globe
link: https://romaindeville.fr
name: R. Deville Wesite
- icon: fontawesome/solid/paper-plane
link: mailto:contact@romaindeville.fr
name: "Send mail to @rdeville"
- icon: fontawesome/solid/book-reader
link: https://docs.romaindeville.fr
name: All Projects Home Documentation
- icon: fontawesome/brands/linkedin
link: https://www.linkedin.com/in/romaindeville
name: "@rdeville on LinkedIn"
- icon: fontawesome/brands/docker
link: https://hub.docker.com/u/rdeville
name: "@rdeville on Docker Hub"
- icon: fontawesome/brands/git-alt
link: https://framagit.org/rdeville.public/
name: "@rdeville on Framagit"
- icon: fontawesome/brands/gitlab
link: https://gitlab.com/rdeville.public/
name: "@rdeville on Gitlab"
- icon: fontawesome/brands/github
link: https://github.com/rdeville-public/
name: "@rdeville on Github"
link: https://gitlab.liris.cnrs.fr/pagoda/
name: "@pagoda on Gitlab LIRIS"
version:
provider: mike
......@@ -265,7 +244,7 @@ plugins:
- mermaid2:
arguments:
theme: |
^(localStorage.getItem('theme') === 'rdeville-dark') ? 'dark' : 'light'
^(localStorage.getItem('theme') === 'pagoda-dark') ? 'dark' : 'light'
# https://pawamoy.github.io/mkdocstrings/
# Automatic documentation from sources, for MkDocs.
- mkdocstrings:
......
#
# This file is autogenerated by pip-compile
# To update, run:
#
# pip-compile requirements.docs.in
#
astunparse==1.6.3
# via pytkdocs
babel==2.9.1
# via mkdocs-git-revision-date-localized-plugin
click==7.1.2
# via
# mkdocs
# nltk
docopt==0.6.2
# via pykwalify
future==0.18.2
# via lunr
gitdb==4.0.7
# via gitpython
gitpython==3.1.14
# via mkdocs-git-revision-date-localized-plugin
jinja2==2.11.3
# via
# mkdocs
# mkdocs-macros-plugin
# mkdocstrings
joblib==1.0.1
# via nltk
livereload==2.6.3
# via mkdocs
lunr[languages]==0.5.8
# via mkdocs
markdown-include==0.6.0
# via -r requirements.docs.in
markdown==3.3.4
# via
# markdown-include
# mkdocs
# mkdocs-autorefs
# mkdocs-material
# mkdocstrings
# pymdown-extensions
markupsafe==1.1.1
# via
# jinja2
# mkdocstrings
mkdocs-autorefs==0.1.1
# via mkdocstrings
mkdocs-exclude==1.0.2
# via -r requirements.docs.in
mkdocs-git-revision-date-localized-plugin==0.9.2
# via -r requirements.docs.in
mkdocs-macros-plugin==0.5.5
# via -r requirements.docs.in
mkdocs-material-extensions==1.0.1
# via mkdocs-material
mkdocs-material==7.1.4
# via
# -r requirements.docs.in
# mkdocs-macros-plugin
# mkdocs-material-extensions
mkdocs-monorepo-plugin==0.4.14
# via -r requirements.docs.in
mkdocs-section-index==0.3.0
# via -r requirements.docs.in
mkdocs==1.1.2
# via
# -r requirements.docs.in
# mkdocs-autorefs
# mkdocs-exclude
# mkdocs-git-revision-date-localized-plugin
# mkdocs-macros-plugin
# mkdocs-material
# mkdocs-monorepo-plugin
# mkdocs-section-index
# mkdocstrings
mkdocstrings==0.15.0
# via -r requirements.docs.in
nltk==3.6.2
# via lunr
pygments==2.9.0
# via mkdocs-material
pykwalify==1.8.0
# via -r requirements.docs.in
pymdown-extensions==8.1.1
# via
# mkdocs-material
# mkdocstrings
python-dateutil==2.8.1
# via
# mkdocs-macros-plugin
# pykwalify
pytkdocs==0.11.1
# via mkdocstrings
pytz==2021.1
# via babel
pyyaml==5.4.1
# via
# mkdocs
# mkdocs-macros-plugin
regex==2021.4.4
# via nltk
ruamel.yaml.clib==0.2.2
# via ruamel.yaml
ruamel.yaml==0.17.4
# via pykwalify
six==1.16.0
# via
# astunparse
# livereload
# lunr
# python-dateutil
smmap==4.0.0
# via gitdb
termcolor==1.1.0
# via mkdocs-macros-plugin
tornado==6.1
# via
# livereload
# mkdocs
tqdm==4.60.0
# via nltk
wheel==0.36.2
# via astunparse
......@@ -29,7 +29,7 @@ DRY_RUN="false"
SCRIPT_PATH="$( cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 || return 1 ; pwd -P )"
SCRIPT_FULL_PATH="${SCRIPT_PATH}/$(basename "${BASH_SOURCE[0]}")"
MKDOCS_ROOT="${SCRIPT_PATH//\/tools/}"
MKDOCS_ROOT="${SCRIPT_PATH}/../"
MKDOCS_DEBUG_LEVEL="INFO"
manpage()
......
# Config is awesome: https://EditorConfig.org
# top-most EditorConfig file
root = true
# Unix-style for every file
[*]
# Set default charset
charset = utf-8
end_of_line = lf
# Do not insert final new line at the end of file
insert_final_newline = false
# Automatically remove trailing space at end of line
trim_trailing_whitespace = true
# Size of indentation (either tabs or space)
indent_size = 2
# Type of indentation (either tabs or space)
indent_style = space
# Maximum length (in number of chars) for a line
max_line_length = 80
# Python specific syntax
[*.py]
# Size of indentation (either tabs or space)
indent_size = 4
# Yaml specific syntax
[*.{yaml,yml}]
# Maximum length (in number of chars) for a line
max_line_length = 120
# Project Specific Gitignore
.vimrc.local
.tmuxinator.yml
.old/
.tmp/
### BEGIN MKDOCS TEMPLATE ###
### WARNING, DO NOT UPDATE CONTENT BETWEEN MKDOCS TEMPLATE TAG ! ###
### Modified content will be overwritten when updating. ###
# Created by https://www.toptal.com/developers/gitignore/api/linux,ansible,macos,windows,python,direnv,archive,archives,backup,emacs,vim,code,hugo,latex,nohup,ssh,tags,test,vagrant,virtualenv,zsh,dotenv,venv
# Edit at https://www.toptal.com/developers/gitignore?templates=linux,ansible,macos,windows,python,direnv,archive,archives,backup,emacs,vim,code,hugo,latex,nohup,ssh,tags,test,vagrant,virtualenv,zsh,dotenv,venv
### Ansible ###
*.retry
### Archive ###
### Mostly from https://en.wikipedia.org/wiki/List_of_archive_formats
## Archiving only
# The traditional archive format on Unix-like systems, now used mainly for the
# creation of static libraries.
*.a
*.ar
# RPM files consist of metadata concatenated with (usually) a cpio archive.
# Newer RPM systems also support other archives, as cpio is becoming obsolete.
# cpio is also used with initramfs.
*.cpio
# A self-extracting archive that uses the Bourne shell (sh).
*.shar
# A system for storing multiple files. LBR archives typically contained files
# processed by SQ, or the archive itself was compressed with SQ. LBR archives
# that were compressed with SQ ended with the extension .LQR
*.LBR
# An archive format originally used mainly for archiving and distribution of
# the exact, nearly-exact, or custom-modified contents of an optical storage
# medium such as a CD-ROM or DVD-ROM. However, it can be used to archive the
# contents of other storage media, selected partitions, folders, and/or files.
# The resulting archive is typically optimized for convenient rendering to
# (re-)writable CD or DVD media.
*.iso
# A library format used primarily on the Commodore 64 and 128 lines of
# computers. This bears no resemblance to the DOS LBR format. While library files
# were quick to implement (a number of programs exist to work with them) they are
# crippled in that they cannot grow with use: once a file has been created it
# cannot be amended (files added, changed or deleted) without recreating the
# entire file.
*.lbr
# An archive format used by Mozilla for storing binary diffs. Used in
# conjunction with bzip2.
*.mar
# A common archive format used on Unix-like systems. Generally used in
# conjunction with compressors such as gzip, bzip2, compress or xz to create
# .tar.gz, .tar.bz2, .tar.Z or tar.xz files.
*.tar
# Package managers
# Red Hat Package Manager
*.rpm
# Debian package
*.deb
# MicroSoft Installer
*.msi
*.msm
*.msp
# Mozilla package installer
*.xpi
# Ruby Package
*.gem
### Archives ###
# It's better to unpack these files and commit the raw source because
# git has its own built in compression methods.
*.7z
*.jar
*.rar
*.zip
*.gz
*.gzip
*.tgz
*.bzip
*.bzip2
*.bz2
*.xz
*.lzma
*.cab
*.xar
# Packing-only formats
# Package management formats
*.dmg
*.egg
*.txz
### Backup ###
*.bak
*.gho
*.ori
*.orig
*.tmp
### Code ###
.vscode/*
!.vscode/tasks.json
!.vscode/launch.json
*.code-workspace
### direnv ###
.direnv
.envrc
.envrc.ini
### dotenv ###
.env
### Emacs ###
# -*- mode: gitignore; -*-
*~
\#*\#
/.emacs.desktop
/.emacs.desktop.lock
*.elc
auto-save-list
tramp
.\#*
# Org-mode
.org-id-locations
*_archive
ltximg/**
# flymake-mode
*_flymake.*
# eshell files
/eshell/history
/eshell/lastdir
# elpa packages
/elpa/
# reftex files
*.rel
# AUCTeX auto folder
/auto/
# cask packages
.cask/
dist/
# Flycheck
flycheck_*.el
# server auth directory
/server/
# projectiles files
.projectile
# directory configuration
.dir-locals.el
# network security
/network-security.data
### Hugo ###
# Generated files by hugo
/public/
/resources/_gen/
hugo_stats.json
# Executable may be added to repository
hugo.exe
hugo.darwin
hugo.linux
### LaTeX ###
## Core latex/pdflatex auxiliary files:
*.aux
*.lof
*.log
*.lot
*.fls
*.out
*.toc
*.fmt
*.fot
*.cb
*.cb2
.*.lb
## Intermediate documents:
*.dvi
*.xdv
*-converted-to.*
# these rules might exclude image files for figures etc.
# *.ps
# *.eps
# *.pdf
## Generated if empty string is given at "Please type another file name for output:"
.pdf
## Bibliography auxiliary files (bibtex/biblatex/biber):
*.bbl
*.bcf
*.blg
*-blx.aux
*-blx.bib
*.run.xml
## Build tool auxiliary files:
*.fdb_latexmk
*.synctex
*.synctex(busy)
*.synctex.gz
*.synctex.gz(busy)
*.pdfsync
## Build tool directories for auxiliary files
# latexrun
latex.out/
## Auxiliary and intermediate files from other packages:
# algorithms
*.alg
*.loa
# achemso
acs-*.bib
# amsthm
*.thm
# beamer
*.nav
*.pre
*.snm
*.vrb
# changes
*.soc
# comment
*.cut
# cprotect
*.cpt
# elsarticle (documentclass of Elsevier journals)
*.spl
# endnotes
*.ent
# fixme
*.lox
# feynmf/feynmp
*.mf
*.mp
*.t[1-9]
*.t[1-9][0-9]
*.tfm
#(r)(e)ledmac/(r)(e)ledpar
*.end
*.?end
*.[1-9]
*.[1-9][0-9]
*.[1-9][0-9][0-9]
*.[1-9]R
*.[1-9][0-9]R
*.[1-9][0-9][0-9]R
*.eledsec[1-9]
*.eledsec[1-9]R
*.eledsec[1-9][0-9]
*.eledsec[1-9][0-9]R
*.eledsec[1-9][0-9][0-9]
*.eledsec[1-9][0-9][0-9]R
# glossaries
*.acn
*.acr
*.glg
*.glo
*.gls
*.*-glg
*.*-glo
*.*-gls
*.glsdefs
*.lzo
*.lzs
# uncomment this for glossaries-extra (will ignore makeindex's style files!)
# *.ist
# gnuplottex
*-gnuplottex-*
# gregoriotex
*.gaux
*.gtex
# htlatex
*.4ct
*.4tc
*.idv
*.lg
*.trc
*.xref
# hyperref
*.brf
# knitr
*-concordance.tex
# TODO Comment the next line if you want to keep your tikz graphics files
*.tikz
*-tikzDictionary
# listings
*.lol
# luatexja-ruby
*.ltjruby
# makeidx
*.idx
*.ilg
*.ind
# minitoc
*.maf
*.mlf
*.mlt
*.mtc
*.mtc[0-9]*
*.slf[0-9]*
*.slt[0-9]*
*.stc[0-9]*
# minted
_minted*
*.pyg
# morewrites
*.mw
# nomencl
*.nlg
*.nlo
*.nls
# pax
*.pax
# pdfpcnotes
*.pdfpc
# sagetex
*.sagetex.sage
*.sagetex.py
*.sagetex.scmd
# scrwfile
*.wrt
# sympy
*.sout
*.sympy
sympy-plots-for-*.tex/
# pdfcomment
*.upa
*.upb
# pythontex
*.pytxcode
pythontex-files-*/
# tcolorbox
*.listing
# thmtools
*.loe
# TikZ & PGF
*.dpth
*.md5
*.auxlock
# todonotes
*.tdo
# vhistory
*.hst
*.ver
# easy-todo
*.lod
# xcolor
*.xcp
# xmpincl
*.xmpi
# xindy
*.xdy
# xypic precompiled matrices and outlines
*.xyc
*.xyd
# endfloat
*.ttt
*.fff
# Latexian
TSWLatexianTemp*
## Editors:
# WinEdt
*.sav
# Texpad
.texpadtmp
# LyX
*.lyx~
# Kile
*.backup
# gummi
.*.swp
# KBibTeX
*~[0-9]*
# TeXnicCenter
*.tps
# auto folder when using emacs and auctex
./auto/*
*.el
# expex forward references with \gathertags
*-tags.tex
# standalone packages
*.sta
# Makeindex log files
*.lpz
# REVTeX puts footnotes in the bibliography by default, unless the nofootinbib
# option is specified. Footnotes are the stored in a file with suffix Notes.bib.
# Uncomment the next line to have this generated file ignored.
#*Notes.bib
### LaTeX Patch ###
# LIPIcs / OASIcs
*.vtc
# glossaries
*.glstex
### Linux ###
# temporary files which can be created if a process still has a handle open of
# a deleted file
.fuse_hidden*
# KDE directory preferences
.directory
# Linux trash folder which might appear on any partition or disk
.Trash-*
# .nfs files are created when an open file is removed but is still being accessed
.nfs*
### macOS ###
# General
.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
### Nohup ###
nohup.out
### Python ###
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
build/
develop-eggs/
downloads/
eggs/
.eggs/
parts/
sdist/
var/
wheels/
pip-wheel-metadata/
share/python-wheels/
*.egg-info/
.installed.cfg
MANIFEST
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
pytestdebug.log
# Translations
*.mo
*.pot
# Django stuff:
local_settings.py
db.sqlite3
db.sqlite3-journal
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
doc/_build/
# PyBuilder
target/
# Jupyter Notebook
.ipynb_checkpoints
# IPython
profile_default/
ipython_config.py
# pyenv
.python-version
# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in
# version control. However, in case of collaboration, if having
# platform-specific dependencies or dependencies having no cross-platform
# support, pipenv may install dependencies that don't work, or not install
# all needed dependencies.
#Pipfile.lock
# poetry
#poetry.lock
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
__pypackages__/
# Celery stuff
celerybeat-schedule
celerybeat.pid
# SageMath parsed files
*.sage.py
# Environments
# .env
.env/
.venv/
env/
venv/
ENV/
env.bak/
venv.bak/
pythonenv*
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
.dmypy.json
dmypy.json
# Pyre type checker
.pyre/
# pytype static type analyzer
.pytype/
# operating system-related files
# file properties cache/storage on macOS
*.DS_Store
# thumbnail cache on Windows
Thumbs.db
# profiling data
.prof
### SSH ###
**/.ssh/id_*
**/.ssh/*_id_*
**/.ssh/known_hosts
### Tags ###
# Ignore tags created by etags, ctags, gtags (GNU global) and cscope
TAGS
.TAGS
!TAGS/
tags
.tags
!tags/
gtags.files
GTAGS
GRTAGS
GPATH
GSYMS
cscope.files
cscope.out
cscope.in.out
cscope.po.out
### Test ###
### Ignore all files that could be used to test your code and
### you wouldn't want to push
# Reference https://en.wikipedia.org/wiki/Metasyntactic_variable
# Most common
*foo
*bar
*fubar
*foobar
*baz
# Less common
*qux
*quux
*bongo
*bazola
*ztesch
# UK, Australia
*wibble
*wobble
*wubble
*flob
*blep
*blah
*boop
*beep
# Japanese
*hoge
*piyo
*fuga
*hogera
*hogehoge
# Portugal, Spain
*fulano
*sicrano
*beltrano
*mengano
*perengano
*zutano
# France, Italy, the Netherlands
*toto
*titi
*tata
*tutu
*pipppo
*pluto
*paperino
*aap
*noot
*mies
# Other names that would make sense
*tests
*testsdir
*testsfile
*testsfiles
*test
*testdir
*testfile
*testfiles
*testing
*testingdir
*testingfile
*testingfiles
*temp
*tempdir
*tempfile
*tempfiles
*tmp
*tmpdir
*tmpfile
*tmpfiles
*lol
### Vagrant ###
# General
.vagrant/
# Log files (if you are creating logs in debug mode, uncomment this)
# *.log
### Vagrant Patch ###
*.box
### venv ###
# Virtualenv
# http://iamzed.com/2009/05/07/a-primer-on-virtualenv/
[Bb]in
[Ii]nclude
[Ll]ib
[Ll]ib64
[Ll]ocal
[Ss]cripts
pyvenv.cfg
.venv
pip-selfcheck.json
### Vim ###
# Swap
[._]*.s[a-v][a-z]
!*.svg # comment out if you don't need vector files
[._]*.sw[a-p]
[._]s[a-rt-v][a-z]
[._]ss[a-gi-z]
[._]sw[a-p]
# Session
Session.vim
Sessionx.vim
# Temporary
.netrwhist
# Auto-generated tag files
# Persistent undo
[._]*.un~
### VirtualEnv ###
# Virtualenv
# http://iamzed.com/2009/05/07/a-primer-on-virtualenv/
### Windows ###
# Windows thumbnail cache files
Thumbs.db:encryptable
ehthumbs.db
ehthumbs_vista.db
# Dump file
*.stackdump
# Folder config file
[Dd]esktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Windows Installer files
*.msix
# Windows shortcuts
*.lnk
### Zsh ###
# Zsh compiled script + zrecompile backup
*.zwc
*.zwc.old
# Zsh completion-optimization dumpfile
*zcompdump*
# Zsh zcalc history
.zcalc_history
# A popular plugin manager's files
._zinit
.zinit_lstupd
# zdharma/zshelldoc tool's files
zsdoc/data
# robbyrussell/oh-my-zsh/plugins/per-directory-history plugin's files
# (when set-up to store the history in the local directory)
.directory_history
# MichaelAquilina/zsh-autoswitch-virtualenv plugin's files
# (for Zsh plugins using Python)
# Zunit tests' output
/tests/_output/*
!/tests/_output/.gitkeep
# End of https://www.toptal.com/developers/gitignore/api/linux,ansible,macos,windows,python,direnv,archive,archives,backup,emacs,vim,code,hugo,latex,nohup,ssh,tags,test,vagrant,virtualenv,zsh,dotenv,venv
### END MKDOCS TEMPLATE ###
# ******************************************************************************
# VIM MODELINE
# vim: ft=gitignore
# ******************************************************************************
---
# GLOBAL CONFIGURATION
# =============================================================================
# YAML Anchors
# -----------------------------------------------------------------------------
# This CI file haevily make use of YAML anchors for multiple reasons:
# - Avoid writing twice the same block of codes
# - Resuse block of codes
# - Make the CI more generic and easily extensible or modifiable
# See https://docs.gitlab.com/ee/ci/yaml/README.html#anchors
# Define base workflow
# https://docs.gitlab.com/ee/ci/yaml/README.html#workflow
workflow:
rules:
# Do not run CI when commit title have
# WIP, NO-CI or 🚧 (gitmoji for "work in progress", aka :construction:)
- if: $CI_COMMIT_TITLE =~ /.*(WIP|NO-CI|🚧|:construction:).*/
when: never
# Do not run CI if repo is not on gitlab.liris.cnrs.fr
- if: $CI_SERVER_HOST =~ /^gitlab.liris.cnrs.fr/
### BEGIN MKDOCS TEMPLATE ###
### WARNING, DO NOT UPDATE CONTENT BETWEEN MKDOCS TEMPLATE TAG ! ###
### Modified content will be overwritten when updating. ###
# Include other gitlab-ci.yml files
include:
- local: docs/.gitlab-ci.yml
### END MKDOCS TEMPLATE ###
# Stages jobs will pass through with anchors to avoid updating stage in multiple
# place within this file. Now renaming a stage can be done directly after the
# anchor name below.
# https://docs.gitlab.com/ee/ci/yaml/README.html#stage
stages:
- &pre_test pre_test
- &test test
- &build build
- &deploy deploy
- &post_deploy post_deploy
# Global variables shared for all jobs
# https://docs.gitlab.com/ee/ci/yaml/README.html#variables
variables:
PIP_CACHE_DIR: "${CI_PROJECT_DIR}/.cache/pip"
# Images anchors
# -----------------------------------------------------------------------------
# https://docs.gitlab.com/ee/ci/yaml/README.html#image
# Basic docker image -> docker:latest image
.image_docker: &image_docker
image: docker:latest
# Before scripts anchors
# -----------------------------------------------------------------------------
# https://docs.gitlab.com/ee/ci/yaml/README.html#before_script
.before_script_python_dependencies_main: &before_script_python_dependencies_main
before_script:
# Add python dependencies
- apk update
# Install base package required for mkdocs builds
- apk add --no-cache --update-cache
build-base
python3-dev
py3-pip
py3-virtualenv
bash
git
gcc
libffi-dev
musl-dev
openssl-dev
cargo
# Create virtual environment
- virtualenv .venv
# Activate virtual environment
- source .venv/bin/activate
# Rules anchors
# -----------------------------------------------------------------------------
# https://docs.gitlab.com/ee/ci/yaml/README.html#rules
# Defining bash regexp test
.rules_regexp:
- &rules_regexp_dev $CI_COMMIT_BRANCH =~ /^((release|feature|hotfix|bugfix)-|merge_request_)*/
- &rules_regexp_pre_prod $CI_COMMIT_BRANCH =~ /(develop|master)/
- &rules_regexp_prod $CI_COMMIT_TAG
# Defining rules that now replace only to run jobs under specific condition
# and define variables
.rules_dev: &rules_dev
if: *rules_regexp_dev
variables:
CI_DEPLOY_TYPE: "dev"
.rules_pre_prod: &rules_pre_prod
if: *rules_regexp_pre_prod
variables:
CI_DEPLOY_TYPE: "pre_prod"
.rules_prod: &rules_prod
if: *rules_regexp_prod
variables:
CI_DEPLOY_TYPE: "prod"
# Tag anchors
# -----------------------------------------------------------------------------
# https://docs.gitlab.com/ee/ci/yaml/README.html#tag
# Run jobs in regular docker
.tag_docker: &tag_docker
tags:
- docker
# Stages anchors
# -----------------------------------------------------------------------------
# https://docs.gitlab.com/ee/ci/yaml/README.html#stage
# This can be seen as overbloated while overuse of YAML anchors, but the
# advantage is that if we rename a stage, we will just need to rename it at the
# start of this CI.
.stage_pre_test: &stage_pre_test
stage: *pre_test
.stage_test: &stage_test
stage: *test
.stage_build: &stage_build
stage: *build
.stage_deploy: &stage_deploy
stage: *deploy
.stage_post_deploy: &stage_post_deploy
stage: *post_deploy
# =============================================================================
# CI JOBS
# =============================================================================
# Jobs in test stage
# -----------------------------------------------------------------------------
test_tox_format_python:
<<: *tag_docker
<<: *image_docker
<<: *stage_test
<<: *before_script_python_dependencies_main
script:
# Install python tox
- pip3 install tox
# Run tox
- tox -e format_python
test_tox_format_shell:
<<: *tag_docker
<<: *image_docker
<<: *stage_test
<<: *before_script_python_dependencies_main
script:
# Install python tox
- pip3 install tox
# Run tox
- tox -e format_shell
# *****************************************************************************
# VIM MODELINE
# vim: fdm=indent
# *****************************************************************************
---
# Based on ansible-lint config
extends: default
ignore: |
.*
rules:
braces:
max-spaces-inside: 1
level: error
brackets:
max-spaces-inside: 1
level: error
colons:
max-spaces-after: -1
level: error
commas:
max-spaces-after: -1
level: error
comments: disable
comments-indentation: disable
document-start: disable
empty-lines:
max: 3
level: error
hyphens:
level: error
indentation: disable
key-duplicates: enable
line-length: disable
new-line-at-end-of-file: disable
new-lines:
type: unix
trailing-spaces: disable
truthy: disable
<!-- BEGIN MKDOCS TEMPLATE -->
<!--
WARNING, DO NOT UPDATE CONTENT BETWEEN MKDOCS TEMPLATE TAG !
Modified content will be overwritten when updating
-->
MIT License
Copyright (c) 2020 - 2021
- Emmanuel Coquery <emmanuel.coquery@univ-lyon1.fr>
- Eric Boix <eric.boix@liris.cnrs.fr>
- Romain Deville <code@romaindeville.fr>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
<!-- END MKDOCS TEMPLATE -->
<div align="center" style="text-align: center;">
<!-- Project Title -->
<a href="<TPL:REPO_URL>">
<img src="docs/assets/img/meta/<TPL:REPO_NAME>_logo.png" width="100px">
<h1><TPL:REPO_NAME_FIRST_UPPERCASE></h1>
</a>
<!-- Project Badges -->
[![License][license_badge]][license]
[![Build Status][build_status_badge]][build_status]
--------------------------------------------------------------------------------
TODO: Short description as written in `docs/_data/repo.yaml`
--------------------------------------------------------------------------------
[repo_url]: <TPL:REPO_URL>
[license_badge]: https://img.shields.io/badge/License-MIT-blue?style=flat-square&logo=open-source-initiative
[license]: LICENSE
[build_status_badge]: <TPL:REPO_URL>/badges/master/pipeline.svg?style=flat-square&logo=appveyor
[build_status]: <TPL:REPO_URL>/commits/master
</div>
## Table of Content
* [Project Documentation](#project-documentation)
<!-- BEGIN MKDOCS TEMPLATE -->
<!--
WARNING, DO NOT UPDATE CONTENT BETWEEN MKDOCS TEMPLATE TAG !
Modified content will be overwritten when updating
-->
## Project Documentation
The complete documentation of the project can be accessed via its [Online
Documentation][online_doc].
If, for any reason, the link to the [Online Documentation][online_doc] is
broken, you can generate its documention locally on your computer (since the
documentation is jointly stored within the repository).
To do so, you will need the following requirements:
- Python >= 3.8
- Pip3 with Python >= 3.8
First setup a temporary python virtual environment and activate it:
```bash
# Create the temporary virtual environment
python3 -m venv .temporary_venv
# Activate it
source .temporary_venv/bin/activate
```
Now, install required dependencies to render the documentation using
[mkdocs][mkdocs] in the python virtual environment:
```bash
pip3 install -r requirements.docs.txt
```
Now you can easily render the documentation using [mkdocs][mkdocs] through the
usage of the following command (some logs will be outputed to stdout):
```bash
# Assuming you are at the root of the repo
# If there is a `mkdocs.local.yml`
mkdocs serve -f mkdocs.local.yml
# If there is no `mkdocs.local.yml`, only `mkdocs.yml`
mkdocs serve
```
You can now browse the full documentation by visiting
[http://localhost:8000][localhost].
[localhost]: https://localhost:8000
[mkdocs]: https://www.mkdocs.org/
<!-- END MKDOCS TEMPLATE -->
[online_doc]: <TPL:REPO_ONLINE_DOC_URL>/index.html
---
# GLOBAL CONFIGURATION
# =============================================================================
# YAML Anchors
# -----------------------------------------------------------------------------
# This CI file haevily make use of YAML anchors for multiple reasons:
# - Avoid writing twice the same block of codes
# - Resuse block of codes
# - Make the CI more generic and easily extensible or modifiable
# See https://docs.gitlab.com/ee/ci/yaml/README.html#anchors
# Define base workflow
# https://docs.gitlab.com/ee/ci/yaml/README.html#workflow
workflow:
rules:
# Do not run CI when commit title have
# WIP, NO-CI or 🚧 (gitmoji for "work in progress", aka :construction:)
- if: $CI_COMMIT_TITLE =~ /.*(WIP|NO-CI|🚧|:construction:).*/
when: never
# Do not run CI if repo is not on framagit
- if: $CI_SERVER_HOST =~ /^gitlab.liris.cnrs.fr/
# Stages jobs will pass through with anchors to avoid updating stage in multiple
# place within this file. Now renaming a stage can be done directly after the
# anchor name below.
# https://docs.gitlab.com/ee/ci/yaml/README.html#stage
stages:
- &pre_test pre_test
- &test test
- &build build
- &deploy deploy
- &post_deploy post_deploy
# Global variables shared for all jobs
# https://docs.gitlab.com/ee/ci/yaml/README.html#variables
variables:
PIP_CACHE_DIR: "${CI_PROJECT_DIR}/.cache/pip"
# Images anchors
# -----------------------------------------------------------------------------
# https://docs.gitlab.com/ee/ci/yaml/README.html#image
# Basic docker image -> docker:latest image
.image_docker: &image_docker
image: docker:latest
# Before scripts anchors
# -----------------------------------------------------------------------------
# https://docs.gitlab.com/ee/ci/yaml/README.html#before_script
.before_script_python_dependencies_docs: &before_script_python_dependencies_docs
# Add python dependencies
- apk update
# Install base package required for mkdocs builds
- apk add --no-cache --update-cache
build-base
python3-dev
py3-pip
py3-virtualenv
bash
git
gcc
# Create virtual environment
- virtualenv .venv
# Activate virtual environment
- source .venv/bin/activate
.before_script_prepare_deployment: &before_script_prepare_deployment
# Add rsync dependencies
- apk update
- apk add --no-cache --update-cache
rsync
git
# Ensure ssh configuration folder exists
- mkdir -p ~/.ssh
# Ensure permission on this folder are right
- chmod 700 ~/.ssh
# Trust the perso LIRIS website
- echo "${SSH_KNOWN_HOSTS}" > ~/.ssh/known_hosts
# Ensure permission on the previously written file are right
- chmod 600 ~/.ssh/known_hosts
# Start the SSH agent
- eval $(ssh-agent -s)
# Add the private SSH key to be able to connect to the perso LIRIS website
- echo "${SSH_PRIVATE_KEY}" | tr -d '\r' | ssh-add -
.before_script_export_variable: &before_script_export_variable
# Update values of some variables depending on the CI_DEPLOY_TYPE
# This could be shortened but gitlab-ci does not support bash variable substitution
- |
case ${CI_DEPLOY_TYPE} in
"dev")
export RSYNC_DEST="${RSYNC_DEST}/dev/"
export ONLINE_DEST="${ONLINE_DEST}/dev/"
;;
"pre_prod")
export RSYNC_DEST="${RSYNC_DEST}/pre_prod/"
export ONLINE_DEST="${ONLINE_DEST}/pre_prod/"
;;
"prod")
export RSYNC_DEST="${RSYNC_DEST}/"
export ONLINE_DEST="${ONLINE_DEST}/"
;;
*)
echo -e "\e[31mERROR - Variable \`CI_DEPLOY_TYPE\` is not defined !"
return 1
;;
esac
# Rules anchors
# -----------------------------------------------------------------------------
# https://docs.gitlab.com/ee/ci/yaml/README.html#rules
# Defining bash regexp test
.rules_regexp:
- &rules_regexp_dev $CI_COMMIT_BRANCH =~ /^((release|feature|hotfix|bugfix)-|merge_request_)*/
- &rules_regexp_pre_prod $CI_COMMIT_BRANCH =~ /(develop|master)/
- &rules_regexp_prod $CI_COMMIT_TAG
- &rules_regexp_trigger_main (($CI_COMMIT_BRANCH =~ /(develop|master)/) || $CI_COMMIT_TAG) && ($MAIN_PROJECT != null && $MAIN_PROJECT != $CI_PROJECT_PATH)
- &rules_regexp_trigger_info (($CI_COMMIT_BRANCH =~ /(develop|master)/) || $CI_COMMIT_TAG) && $MAIN_PROJECT == null
# Defining rules that now replace only to run jobs under specific condition
# and define variables
.rules_dev: &rules_dev
if: *rules_regexp_dev
variables:
CI_DEPLOY_TYPE: "dev"
.rules_pre_prod: &rules_pre_prod
if: *rules_regexp_pre_prod
variables:
CI_DEPLOY_TYPE: "pre_prod"
.rules_prod: &rules_prod
if: *rules_regexp_prod
variables:
CI_DEPLOY_TYPE: "prod"
.rules_trigger_main: &rules_trigger_main
if: *rules_regexp_trigger_main
.rules_trigger_info: &rules_trigger_info
if: *rules_regexp_trigger_info
# Tag anchors
# -----------------------------------------------------------------------------
# https://docs.gitlab.com/ee/ci/yaml/README.html#tag
# Run jobs in regular docker
.tag_docker: &tag_docker
tags:
- pagoda_docker
# Stages anchors
# -----------------------------------------------------------------------------
# https://docs.gitlab.com/ee/ci/yaml/README.html#stage
# This can be seen as overbloated while overuse of YAML anchors, but the
# advantage is that if we rename a stage, we will just need to rename it at the
# start of this CI.
.stage_pre_test: &stage_pre_test
stage: *pre_test
.stage_test: &stage_test
stage: *test
.stage_build: &stage_build
stage: *build
.stage_deploy: &stage_deploy
stage: *deploy
.stage_post_deploy: &stage_post_deploy
stage: *post_deploy
# Cache anchors
# -----------------------------------------------------------------------------
# https://docs.gitlab.com/ee/ci/yaml/README.html#cache
# Setup a global cache to avoid having to reinstall pip and package dependencies
# every time.
# **REMARK** For this to work, runners must be on the same server and docker
# executor must mount /cache
.cache_python: &cache_python
cache:
# Cache dependencies shared within the same branche
# https://docs.gitlab.com/ee/ci/yaml/README.html#cachekey
key: "$CI_COMMIT_BRANCH"
# Let us cache python dependencies
# https://docs.gitlab.com/ee/ci/caching/#caching-python-dependencies
paths:
- .cache/pip
- .venv/
# Save cache all the time, even if jobs failed
# https://docs.gitlab.com/ee/ci/yaml/README.html#cachewhen
when: always
.cache_python_pull: &cache_python_pull
cache:
# Cache dependencies shared across all branches but separated by jobs
# https://docs.gitlab.com/ee/ci/yaml/README.html#cachekey
key: "$CI_COMMIT_BRANCH"
# Let us cache python dependencies
# https://docs.gitlab.com/ee/ci/caching/#caching-python-dependencies
paths:
- .cache/pip
- .venv/
# Setup policy to only pull python cache when we know jobs does not update
# content of python cache.
# https://docs.gitlab.com/ee/ci/yaml/README.html#cachepolicy
policy: pull
# =============================================================================
# CI JOBS
# =============================================================================
# Jobs in pre_test stage
# -----------------------------------------------------------------------------
# Template jobs script to ensure required variables are sets.
script_pre_test_ensure_variable: &script_pre_test_ensure_variable
<<: *tag_docker
<<: *image_docker
<<: *stage_pre_test
before_script:
- *before_script_export_variable
script:
- export ERROR="false"
- |
if [[ -z "${SSH_KNOWN_HOSTS}" ]]
then
echo -e "\e[31mERROR - Variable \`SSH_KNOWN_HOSTS)\` is not defined !"
export ERROR="true"
fi
- |
if [[ -z "${SSH_PRIVATE_KEY}" ]]
then
echo -e "\e[31mERROR - Variable \`SSH_PRIVATE_KEY\` is not defined !"
export ERROR="true"
fi
- |
if [[ -z "${ONLINE_DEST}" ]]
then
echo -e "\e[31mERROR - Variable \`ONLINE_DEST\` is not defined !"
export ERROR="true"
fi
- |
if [[ -z "${RSYNC_DEST}" ]]
then
echo -e "\e[31mERROR - Variable \`RSYNC_DEST\` is not defined !"
export ERROR="true"
fi
- |
if [[ "${ERROR}" == "true" ]]
then
echo -e "\e[31mERROR - At least one required variable is not defined !"
return 1
fi
rules:
- *rules_prod
- *rules_pre_prod
- *rules_dev
# Jobs in test stage
# -----------------------------------------------------------------------------
test_build_local:
<<: *tag_docker
<<: *image_docker
<<: *cache_python
<<: *stage_test
before_script:
- *before_script_python_dependencies_docs
script:
# Install python test requirements
- pip3 install -r requirements.docs.txt
# Build local documentation
- mkdocs build -f mkdocs.local.yml -d site_local
rules:
- exists:
- mkdocs.local.yaml
test_build:
<<: *tag_docker
<<: *image_docker
<<: *cache_python
<<: *stage_test
before_script:
- *before_script_python_dependencies_docs
script:
# Install python test requirements
- pip3 install -r requirements.docs.txt
# Build local documentation
- mkdocs build -d site
# Jobs in build stage
# -----------------------------------------------------------------------------
build_html:
<<: *tag_docker
<<: *image_docker
<<: *cache_python_pull
<<: *stage_build
before_script:
- *before_script_python_dependencies_docs
script:
# Install python documentations requirements
- pip3 install -r requirements.docs.txt
# Build the documentation
- mkdocs build
artifacts:
paths:
- site/
# Jobs in deploy stage
# -----------------------------------------------------------------------------
# Template jobs script deploy previously built html documentation.
script_deploy_html: &script_deploy_html
<<: *tag_docker
<<: *image_docker
<<: *stage_deploy
needs:
- build_html
before_script:
- *before_script_export_variable
- *before_script_prepare_deployment
script:
- git fetch --all
- |
if ! git describe --tags `git rev-list --tags --max-count=1`
then
export LAST_TAG="-1.-1"
else
export LAST_TAG="$(git describe --tags `git rev-list --tags --max-count=1`)"
export LAST_TAG="${LAST_TAG/v/}"
export LAST_TAG="${LAST_TAG%.*}"
fi
- |
case "${CI_DEPLOY_TYPE}" in
"dev")
if [[ -n "${RSYNC_BASE_PATH}" ]];
then
export PROJECT_PATH="/${CI_COMMIT_BRANCH}/${RSYNC_BASE_PATH}/";
else
export PROJECT_PATH="/${CI_COMMIT_BRANCH}/"
fi
;;
"pre_prod")
if [[ -n "${RSYNC_BASE_PATH}" ]];
then
export PROJECT_PATH="/${CI_COMMIT_BRANCH}/${RSYNC_BASE_PATH}/";
else
export PROJECT_PATH="/${CI_COMMIT_BRANCH}/"
fi
;;
"prod")
if [[ -n "${RSYNC_BASE_PATH}" ]];
then
export PROJECT_PATH="/${RSYNC_BASE_PATH}/";
else
export PROJECT_PATH="/"
fi
;;
esac
- export RSYNC_PATH="${PROJECT_PATH}${LAST_TAG}"
- export ONLINE_PATH="${ONLINE_DEST}${PROJECT_PATH}latest"
- mkdir -p "tmp/${RSYNC_PATH}"
- mv site/* "tmp/${RSYNC_PATH}/"
- |
if [[ -f "tmp/${RSYNC_PATH}/versions.json" ]]
then
cp tmp/${RSYNC_PATH}/versions.json tmp/${RSYNC_PATH}/../versions.json
fi
- ln -s -- "${LAST_TAG}" "latest"
- mv "latest" "tmp/${PROJECT_PATH}"
- echo -e "
<!DOCTYPE html>\n
<html>\n
<head>\n
<meta charset='utf-8'>\n
<title>Redirecting</title>\n
<noscript>\n
<meta http-equiv='refresh' content='1; url=${ONLINE_PATH}' />\n
</noscript>\n
<script>\n
window.location.replace('${ONLINE_PATH}');\n
</script>\n
</head>\n
<body>\n
Redirecting to <a href='${ONLINE_PATH}'>${ONLINE_PATH}</a>...\n
</body>\n
</html>" > tmp/${PROJECT_PATH}/index.html
- rsync -Oavz "tmp/" "${RSYNC_DEST}"
rules:
- *rules_prod
- *rules_pre_prod
- *rules_dev
# Jobs in post_deploy stage
# -----------------------------------------------------------------------------
trigger_main_repo:
<<: *stage_post_deploy
trigger:
include:
- project: $MAIN_PROJECT
ref: $CI_COMMIT_BRANCH
file: $MAIN_PROJECT_CI_PATH/.gitlab-ci.yml
strategy: depend
variables:
MAIN_PROJECT_CI_PATH: ${MAIN_PROJECT_CI_PATH:-"."}
rules:
- *rules_trigger_main
inform_triggers_variables:
<<: *tag_docker
<<: *image_docker
<<: *stage_post_deploy
script:
- |
if [[ -z "${MAIN_PROJECT}" ]]
then
echo -e "\e[32m
INFO - To trigger a main repo documentation CI, you can set \\n
INFO - variable \`MAIN_PROJECT\`. Otherwise, you have nothing\\n
INFO - to do. If the CI you want to run is not at the root of\\n
INFO - the repo defined by variable \`MAIN_PROJECT\`. You can\\n
INFO - set the variable \`MAIN_PROJECT_CI_PATH\` which define\\n
INFO - the path to the file \`gitlab-ci.yaml\` to be run in \\n
INFO - the \`MAIN_PROJECT\`."
fi
rules:
- *rules_trigger_info
# *****************************************************************************
# VIM MODELINE
# vim: fdm=indent
# *****************************************************************************
# Extra Data Information & Customization
# ===========================================================================
# Dictionnary storing variables to be used as "Jinja2" variables within
# markdown files and _data/plugins.py
# Mkdocs.yaml
# ---------------------------------------------------------------------------
# Here you can overwrite main key you could find in mkdocs.yaml
# The name of your site, if not specified, will be the entry `name` of the repo in
# `_data/repo_name.yaml`
#site_name: "Your Site Name"
# The site description of your site, if not specified will be the description
# of the repo in `_data/repo_name.yaml`
#site_desc: "A short description"
# The url of your site, if not specified, then the site_url will be build from
# the key `site_base_url` below and the `url_slug_with_namespace` in
# `_data/repo_name.yaml`. If `site_base_url` is not specified, then value of
# `site_url` will not be overwritten.
#site_url: "https://my_site.tld"
# The name or company which old the copyright. No need to specify any date
# as it will be built based on the first commit of your repo. If not specify,
# then no copyright will be shown on the footer of the documentation.
copyright: "LIRIS - PAGoDA"
# Name of your repo, if not specified, will be the key `mkdocs_repo_name` in
# `_data/repo_name.yaml` If value is EXACTLY "!!git_platform", then the value
# will be `git_platform["name"]` (see below).
#repo_name: "My Repo Name"
# URL to the source code of your repo. If not specified, will be build from
# `git_platform["url"]` (see below) and `repo_name["git_slug_with_namespace"]`
# in `_data/repo_name.yaml`.
#repo_url: "https://mygit.tld/namespace/repo_name
# You can override every entry of the `theme` key in `mkdocs.yaml`, here.
# Usefull to override templated mkdocs.
#
# REMARK, ONLY FOR MATERIAL-MKDOCS THEME
# If `theme["logo"]` is not specified, i.e. path to the logo image, then it
# will be set to the value of the key `repo_name["logo"]` in
# `_data/repo_name.yaml` if specified.
#
# If `theme["favicon"]` is not specified, i.e. path to the favicon image,
# then it will be set to the value of the key `repo_name["logo"]` in
# `_data/repo_name.yaml` if specified.
#
# If `theme["icon"]["repo"]` is not specified, i.e. icon "path" (see
# https://squidfunk.github.io/mkdocs-material/reference/icons-emojis/) that
# will be shown on the top rigt corner in front off the repo name, then it
# will be set to the value of the key `git_platform["icon"]` (see below).
#theme:
# logo: "path/to/logo.svg"
# icon:
# repo: fontawesome/brands/gitlab
# favicon: "path/to/favicon.svg"
# Main repo configuration
# ---------------------------------------------------------------------------
# Here you can specify variable about your main repo documentation
# The base url of your site, e.g. if you are using multiple nested
# documentation build with monorepo, you might want to share the same base URL
# for all your repo, then build link from the repo["url_slug_with_namespace"].
site_base_url: "https://projet.liris.cnrs.fr/pagoda"
# Git platform
# ---------------------------------------------------------------------------
# In this REQUIRED section you will be able to specify some information for you
# git platform hosting your repo. This section will be used to automatically
# setup configuration for mkdocs such as `repo_url`, theme["icon"]["repo"] etc.
# Main dict entry
git_platform:
# The logo of the git platform you use. Not used in mkdocs configuration but
# can be used in markdown documentation file.
logo: " "
# Icon "path" (see
# https://squidfunk.github.io/mkdocs-material/reference/icons-emojis/) that
# will be shown on the top rigt corner in front off the repo name if not
# specified in `theme["icon"]["repo"]`.
icon: "fontawesome/brands/gitlab"
# Name of the platform you use.
name: "Gitlab LIRIS"
# URL of the platform you use, to be able to set `repo_url` for mkdocs
# configuration.
url: "https://gitlab.liris.cnrs.fr/"
{% set curr_repo=subs("TODO") %}
<!-- BEGIN MKDOCS TEMPLATE -->
<!--
WARNING, DO NOT UPDATE CONTENT BETWEEN MKDOCS TEMPLATE TAG !
Modified content will be overwritten when updating
-->
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at:
{% for i_maintainer in curr_repo.maintainers %}
- **[📧 {{ i_maintainer.name }} <{{ i_maintainer.mail }}>](mailto:{{ i_maintainer.mail }})**
{% endfor %}
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
This Code of Conduct is adapted from the
[Contributor Covenant](https://www.contributor-covenant.org),
version 2.0, available at
[https://www.contributor-covenant.org/version/2/0/code_of_conduct.html](https://www.contributor-covenant.org/version/2/0/code_of_conduct.html).
Community Impact Guidelines were inspired by
[Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity).
For answers to common questions about this code of conduct, see the FAQ at
[https://www.contributor-covenant.org/faq](https://www.contributor-covenant.org/faq).
Translations are available at
[https://www.contributor-covenant.org/translations](https://www.contributor-covenant.org/translations).
<!-- END MKDOCS TEMPLATE -->
{% set curr_repo=subs("TODO") %}
<!-- BEGIN MKDOCS TEMPLATE -->
<!--
WARNING, DO NOT UPDATE CONTENT BETWEEN MKDOCS TEMPLATE TAG !
Modified content will be overwritten when updating
-->
# Contributing
This project welcomes contributions from developers and users in the open source
community. Contributions can be made in a number of ways, a few examples are :
* Code patch via pull requests
* Documentation improvements
* Bug reports and patch reviews
* Proposition of new features
* etc.
## Reporting an Issue
Please include as much details as you can when reporting an issue in the [issue
trackers][issue_tracker]. If the problem is visual (for instance, wrong
documentation rendering) please add a screenshot.
[issue_tracker]: {{ git_platform.url }}{{ curr_repo.git_slug_with_namespace }}/-/issues
## Submitting Pull Requests
Once you are happy with your changes or you are ready for some feedback, push it
to your fork and send a pull request. For a change to be accepted it will most
likely need to have tests and documentation if it is a new feature.
For more information, you can refers to the main [developers
guides][developers_guides] which is the common resources I use for all
my projects. There you will find:
* [Syntax Guide][syntax_guide], which describe syntax guidelines per language
to follow if you want to contribute.
* [Contributing workflow][contributing_workflow], which provide an example
of the workflow I used for the development.
[developers_guides]: {{ site_base_url }}/latest/dev_guides/index.html
[syntax_guide]: {{ site_base_url }}/latest/dev_guides/style_guides/index.html
[contributing_workflow]: {{ site_base_url }}/latest/dev_guides/developer_guidelines.html
## Community
Finally, every member of the community should follow this [Code of
conduct][code_of_conduct].
[code_of_conduct]: code_of_conduct.md
<!-- END MKDOCS TEMPLATE -->
# Data Privacy
In itself, [Material for MkDocs][mkdocs_material] theme use for this
documentation does not perform any tracking and should adhere to the General
Data Protection Regulation (GDPR).
Moreover, no third-party services are used in this documentation, i.e. it does
not use google-fonts, google-analytics, neither Disqus.
Any rendering tools, such as [tablesort][tablesort], etc. are served locally
without using CDN or call to external website. The aims are to :
- Render the documentation with stable tools (i.e. documentation may not be
using latest version of previously mentionned tools),
- Avoid useless network requests to external CDN,
- Render the documentation even if the user has web browser add-on which filter
javascript such as [uMatrix][uMatrix].
[mkdocs_material]: https://squidfunk.github.io/mkdocs-material/data-privacy/
[tablesort]: https://cdnjs.cloudflare.com/ajax/libs/tablesort/5.2.1/tablesort.min.js
[uMatrix]: https://github.com/gorhill/uMatrix
# About
In this part of the documentation, you can consult:
- [Code of Conduct](code_of_conduct.md)
- [Contributing](contributing.md)
- [Data Privacy](data_privacy.md)
- [License](license.md)
- [Release Notes](release_notes.md)
{% set curr_repo=subs("TODO") %}
<!-- BEGIN MKDOCS TEMPLATE -->
<!--
WARNING, DO NOT UPDATE CONTENT BETWEEN MKDOCS TEMPLATE TAG !
Modified content will be overwritten when updating
-->
## MIT License
{{ date_copyright }}
{% for i_maintainer in curr_repo.maintainers %}
- [{{ i_maintainer.name }}](mailto:{{ i_maintainer.mail }})
{% endfor %}
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
<!-- END MKDOCS TEMPLATE -->