diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 698ceca148d712874f7d3c59ff29d029e7dfeb33..8aeb6fca90b73f5ed000c1fea372517ff2a061f0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -12,7 +12,8 @@ image: themattrix/tox stages: - tests - integration_testing - - benchmarks_and_profiling + - profiling + - benchmarks - deploy_docs cache: paths: @@ -61,10 +62,10 @@ build_and_deploy_docs: name: ${CI_COMMIT_REF_SLUG} url: http://${BUCKET_NAME}.s3-website.${AWS_DEFAULT_REGION}.amazonaws.com/ -benchmarks_and_profiling: +profiling: dependencies: - tests - stage: benchmarks_and_profiling + stage: profiling only: variables: - $BENCHMARKS_AND_PROFILING @@ -78,7 +79,26 @@ benchmarks_and_profiling: - conda update -n root conda -y - conda install -c conda-forge tox-conda script: - - xvfb-run tox -e benchmarks,profiling -v --recreate + - xvfb-run tox -e profiling -v --recreate + +benchmarks: + dependencies: + - tests + stage: benchmarks + only: + variables: + - $BENCHMARKS_AND_PROFILING + before_script: + - apt update + - apt install -y libgl1-mesa-glx xvfb xdg-utils libcairo2-dev libjpeg-dev libgif-dev + - wget -nv https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O /tmp/Miniconda3-latest-Linux-x86_64.sh + - bash /tmp/Miniconda3-latest-Linux-x86_64.sh -b -p /tmp/miniconda3 + - export PATH=/tmp/miniconda3/bin:$PATH + - pip install tox awscli + - conda update -n root conda -y + - conda install -c conda-forge tox-conda + script: + - xvfb-run tox -e benchmarks -v --recreate test_conda_setup: stage: integration_testing diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index a6cb14eb11913b69207eecf372d04843ff6b6b7d..360d31672a82893830061d2e2836b26fd89f3a46 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -114,6 +114,17 @@ Before you submit a merge request, check that it meets these guidelines: 3. The merge request should work for Python 3.6, 3.7 and for PyPy. Check https://gitlab.aicrowd.com/flatland/flatland/pipelines and make sure that the tests pass for all supported Python versions. + We force pipelines to be run successfully for merge requests to be merged. +4. Although we cannot enforce it technically, we ask for merge requests to be reviewed by at least one core member + in order to ensure that the Technical Guidelines below are respected and that the code is well tested: + +4.1 The remarks from the review should be resolved/implemented and communicated using the 'discussions resolved': + +.. image:: images/DiscussionsResolved.png + +4.2 When a merge request is merged, source branches should be deleted and commits squashed: + +.. image:: images/SourceBranchSquash.png Tips ---- @@ -206,17 +217,6 @@ Technical Guidelines -------------------- -Merge Requests -~~~~~~~~~~~~~~ - -Although we cannot enforce it technically, we ask for -* merge requests to be reviewed -* review points to be implemented using the 'discussions resolved' -.. image:: images/DiscussionsResolved.PNG -* source branches to be deleted and commits to be squashed -.. image:: images/SourceBranchSquash.PNG - - Naming Conventions ~~~~~~~~~~~~~~~~~~ @@ -362,7 +362,11 @@ We use the abc_ class decorator and a way to declaratively define the attributes def save(self, output, data): """Save the data object to the output.""" + + + And then + .. code-block:: python # abc_subclass.py diff --git a/make_docs.py b/make_docs.py index 81fe58736c68817164dc5e2471827ad071aaca31..f56ded3aa87e156cc32650838ebff0dc3fea2885 100644 --- a/make_docs.py +++ b/make_docs.py @@ -36,6 +36,13 @@ for md_file in glob.glob(r'./*.md') + glob.glob(r'./docs/specifications/*.md') + out.write(rst_content) out.flush() +img_dest = 'docs/images/' +if not os.path.exists(img_dest): + os.makedirs(img_dest) +for image_file in glob.glob(r'./images/*.png'): + shutil.copy(image_file, img_dest) + + subprocess.call(['sphinx-apidoc', '--force', '-a', '-e', '-o', 'docs/', 'flatland', '-H', 'API Reference', '--tocfile', '05_apidoc']) @@ -47,7 +54,6 @@ if not os.path.exists(img_dest): os.makedirs(img_dest) for image_file in glob.glob(r'./specifications/img/*'): shutil.copy(image_file, img_dest) - subprocess.call(['python', '-msphinx', '-M', 'html', '.', '_build'])