Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
6da10a4
Initialise documentation with Github Pages and Sphinx
civilx64 Mar 28, 2024
15a0b2c
add env variable to github action
civilx64 Mar 29, 2024
42c61f7
pin dependecies for building docs
civilx64 Mar 29, 2024
3bdf1a6
adjust sphinx-version in container for sphinx-action
civilx64 Mar 29, 2024
2129782
fix path for sphinx output
civilx64 Mar 29, 2024
835f9a2
Update sphinx.yml
civilx64 Mar 29, 2024
a23f52c
Update sphinx.yml
civilx64 Mar 29, 2024
3a14c4c
Update sphinx.yml
civilx64 Mar 29, 2024
b19fc86
Update sphinx.yml
civilx64 Mar 29, 2024
f7b56d0
add deployment for static pages
civilx64 Mar 29, 2024
6690020
edit static.yml
civilx64 Mar 29, 2024
99bd97c
add static pages deployment to sphinx build
civilx64 Mar 29, 2024
b840e34
combine deployment with build
civilx64 Mar 29, 2024
ad03e09
avoid duplicate artifacts
civilx64 Mar 29, 2024
998c929
add permission token
civilx64 Mar 29, 2024
ce6270e
add permission token
civilx64 Mar 29, 2024
477d385
separate actions for build only vs build+deploy
civilx64 Mar 29, 2024
b7c643e
minor docs cleanup
civilx64 Mar 29, 2024
6b87c14
initialise github pages for documentation (#38)
civilx64 Mar 29, 2024
6a7695c
Empty commit
aothms Apr 1, 2024
0de8b27
Update validation_overview.md
aothms Apr 1, 2024
e8b1f56
Merge pull request #39 from buildingSMART/aothms-patch-1
civilx64 Apr 1, 2024
e98a18e
Merge branch 'gh-pages' of https://github.com/buildingSMART/validate …
civilx64 Apr 2, 2024
5651355
clarify non-normative checks in documentation
civilx64 Apr 2, 2024
5702151
Merge pull request #41 from civilx64/doc/non-normative-clarification
civilx64 Apr 3, 2024
f52447b
Merge branch 'development-0.6' of https://github.com/buildingSMART/va…
civilx64 Apr 15, 2024
60f2c8c
add system architecture sketch to docs
civilx64 Apr 15, 2024
24db3ca
Merge branch 'gh-pages' of https://github.com/buildingSMART/validate …
civilx64 Apr 15, 2024
4022e02
Merge branch 'docs/IVS-125-Update-documentation-post-0.6.6-release' o…
civilx64 Sep 21, 2024
2367dad
IVS-125 initial commit
civilx64 Sep 21, 2024
ee8478f
Finish edits for IVS-125 v0.6.6 documentation updates
civilx64 Sep 22, 2024
e9d5a58
fix header offset for rule details
civilx64 Sep 22, 2024
1c0c2d5
Merge branch 'development' of https://github.com/buildingSMART/valida…
civilx64 Sep 22, 2024
52a17bd
Merge pull request #104 from buildingSMART/docs/IVS-125-Update-docume…
civilx64 Sep 27, 2024
27dc86e
Update branch name in build-docs.yml
civilx64 Sep 27, 2024
9a04aec
Update branch name in build-and-deploy-docs.yml
civilx64 Sep 27, 2024
f05142b
rename ALA001 to ALB021 in docs
civilx64 Oct 5, 2024
169ece5
Merge pull request #105 from buildingSMART/IVS-145-Rename-ALA001-to-A…
civilx64 Oct 5, 2024
3e3496b
clean up alignment continuity reporting
civilx64 Nov 3, 2024
2777342
updated pre/postfix formatting
rw-bsi Nov 3, 2024
34be62b
update ifcopenshell version for ALS016 fix
civilx64 Nov 4, 2024
fc296de
Merge pull request #113 from buildingSMART/fix/ALS017_IVS-53_directio…
rw-bsi Nov 4, 2024
462261e
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Nov 4, 2024
051a6bc
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Nov 4, 2024
bde4622
update ifcopenshell version in Dockerfile also
civilx64 Nov 4, 2024
cc47387
Merge pull request #114 from buildingSMART/fix/IVS-186-ALS016
rw-bsi Nov 5, 2024
a6e0a0d
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Nov 6, 2024
eeab09e
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Nov 7, 2024
2d706c6
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Nov 7, 2024
0b7b9f6
Update Makefile
Ghesselink Nov 7, 2024
6b536d2
Trigger deployment
Ghesselink Nov 7, 2024
d00c40e
Update ci_cd.yml
rw-bsi Nov 9, 2024
6bcf6c2
Update Makefile
rw-bsi Nov 9, 2024
551c381
Update Makefile
rw-bsi Nov 9, 2024
fd6b6b0
Update tasks.py
rw-bsi Nov 9, 2024
bb1f1cb
Merge pull request #116 from buildingSMART/IVS-220_catch_segfault
civilx64 Nov 9, 2024
34dba61
Merge branch 'development' into docs/IVS-216-Document-severities
civilx64 Nov 11, 2024
730c104
Add Developer documentation for validation outcome severities
civilx64 Nov 12, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions .github/workflows/build-and-deploy-docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: "Build docs with Sphinx and deploy to Github Pages"

on:
push:
branches: docs/gh-pages

jobs:
build_and_deploy:
runs-on: ubuntu-latest
permissions:
contents: write
id-token: write
pages: write
env:
INPUT_DOCS-FOLDER: docs
steps:
- uses: actions/checkout@v4
- name: Build HTML
uses: civilx64/sphinx-action@master
with:
docs-folder: docs/
- name: Setup Pages
uses: actions/configure-pages@v4
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
# Upload html docs
path: './docs/_build/html'
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
28 changes: 28 additions & 0 deletions .github/workflows/build-docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: "Build docs with Sphinx"

on:
pull_request:
branches: docs/gh-pages

jobs:
build_and_deploy:
runs-on: ubuntu-latest
permissions:
contents: write
id-token: write
pages: write
env:
INPUT_DOCS-FOLDER: docs
steps:
- uses: actions/checkout@v4
- name: Build HTML
uses: civilx64/sphinx-action@master
with:
docs-folder: docs/
- name: Setup Pages
uses: actions/configure-pages@v4
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
# Upload html docs
path: './docs/_build/html'
11 changes: 10 additions & 1 deletion .github/workflows/ci_cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,16 @@ jobs:
source venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
pip install ifcopenshell # TEMP workaround

- name: Install ifcopenshell package (temp)
run: |
cd backend
source venv/bin/activate
# use version of ifcopenshell with desired schema parsing
# TODO: revert to pyPI when schema parsing is published in the future
wget -O /tmp/ifcopenshell_python.zip "https://s3.amazonaws.com/ifcopenshell-builds/ifcopenshell-python-311-v0.8.1-92b63a0-linux64.zip"
mkdir -p venv/lib/python3.11/site-packages
unzip -d venv/lib/python3.11/site-packages /tmp/ifcopenshell_python.zip

- name: Check Django config
run: |
Expand Down
4 changes: 3 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -71,4 +71,6 @@ clean-all:

fetch-modules:
git submodule update --init --recursive
git submodule update --remote
git submodule foreach git clean -f .
git submodule foreach git reset --hard
git submodule update --remote --recursive
4 changes: 2 additions & 2 deletions backend/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ install: venv
. $(VIRTUAL_ENV)/bin/activate && \
pip install --upgrade pip && \
pip install -r requirements.txt && \
wget -O /tmp/ifcopenshell_python.zip "https://s3.amazonaws.com/ifcopenshell-builds/ifcopenshell-python-311-v0.7.9-c18e4ea-linux64.zip" && \
wget -O /tmp/ifcopenshell_python.zip "https://s3.amazonaws.com/ifcopenshell-builds/ifcopenshell-python-311-v0.8.1-92b63a0-linux64.zip" && \
mkdir -p $(VIRTUAL_ENV)/lib/python3.11/site-packages && \
unzip -f -d $(VIRTUAL_ENV)/lib/python3.11/site-packages /tmp/ifcopenshell_python.zip && \
rm /tmp/ifcopenshell_python.zip
Expand All @@ -22,7 +22,7 @@ install-macos: venv
. $(VIRTUAL_ENV)/bin/activate && \
pip install --upgrade pip && \
pip install -r requirements.txt && \
wget -O /tmp/ifcopenshell_python.zip "https://s3.amazonaws.com/ifcopenshell-builds/ifcopenshell-python-311-v0.7.9-c18e4ea-macos64.zip" && \
wget -O /tmp/ifcopenshell_python.zip "https://s3.amazonaws.com/ifcopenshell-builds/ifcopenshell-python-311-v0.8.1-92b63a0-macos64.zip" && \
mkdir -p $(VIRTUAL_ENV)/lib/python3.11/site-packages && \
unzip /tmp/ifcopenshell_python.zip -d .dev/venv/lib/python3.11/site-packages && \
rm /tmp/ifcopenshell_python.zip
Expand Down
2 changes: 1 addition & 1 deletion backend/apps/ifc_validation/checks/ifc_gherkin_rules
Submodule ifc_gherkin_rules updated 48 files
+1 −1 .github/workflows/ci.yml
+14 −0 features/ALB030_Alignment-local-placement.feature
+35 −0 features/CTX000_Presentation-colours-and-textures.feature
+15 −35 features/GEM004_Constraints-on-representation-identifiers.feature
+8 −10 features/GEM051_Presence-of-geometric-context.feature
+3 −8 features/GEM052_Correct-geometric-subcontexts.feature
+17 −0 features/VER000_Versioning-and-revision-control.feature
+1 −1 features/environment.py
+0 −0 features/resources/IFC2X3/valid_ProjectDeclaration.csv
+0 −0 features/resources/IFC2X3/valid_ShapeRepresentationType.csv
+6 −0 features/resources/IFC2X3/valid_TopologyRepresentationType.csv
+0 −0 features/resources/IFC4/valid_ContextIdentifier.csv
+8 −0 features/resources/IFC4/valid_ProjectDeclaration.csv
+11 −0 features/resources/IFC4/valid_ShapeRepresentationIdentifier.csv
+0 −0 features/resources/IFC4/valid_ShapeRepresentationType.csv
+6 −0 features/resources/IFC4/valid_TopologyRepresentationType.csv
+0 −0 features/resources/IFC4X3/valid_ContextIdentifier.csv
+8 −0 features/resources/IFC4X3/valid_ProjectDeclaration.csv
+12 −0 features/resources/IFC4X3/valid_ShapeRepresentationIdentifier.csv
+0 −0 features/resources/IFC4X3/valid_ShapeRepresentationType.csv
+6 −0 features/resources/IFC4X3/valid_TopologyRepresentationType.csv
+0 −2 features/steps/givens/attributes.py
+1 −1 features/steps/thens/values.py
+18 −2 features/steps/utils/geometry.py
+7 −0 test/files/alb030/README.md
+623 −0 test/files/alb030/fail-alb030-alignments_with_grid_placement.ifc
+3,104 −0 test/files/alb030/pass-alb030-alignments_with_local_placement.ifc
+6 −6 test/files/als017/pass-als017-scenario02-imperial_not_applicable.ifc
+120 −0 test/files/ctx000/na-ctx000-non_styled_solid.ifc
+79 −0 test/files/ctx000/na-ctx000-polygonal_face_no_colours_or_styles.ifc
+364 −0 test/files/ctx000/pass-ctx000-alignment_with_styled_material.ifc
+41 −0 test/files/ctx000/pass-ctx000-colours_tessellated_face_set.ifc
+3,103 −0 test/files/ctx000/pass-ctx000-styled-tessellated_face.ifc
+1,554 −0 test/files/ctx000/pass-ctx000-styled_solid_model.ifc
+2 −2 test/files/gem001/fail-gem001-polygonal_face_oriented_edge.ifc
+2 −2 test/files/gem001/fail-gem001-polygonal_face_tesselation.ifc
+2 −2 test/files/gem001/fail-gem001-triangulated_faceset_edge_count_fail.ifc
+2 −2 test/files/gem001/fail-gem001-triangulated_faceset_oriented_edge.ifc
+268 −0 test/files/gem004/fail-gem004-ifc2x3-solid_as_topology_representation_type.ifc
+268 −0 test/files/gem004/fail-gem004-ifc4-solid_as_topology_representation_type.ifc
+268 −0 test/files/gem004/fail-gem004-ifc4x3-solid_as_topology_representation_type.ifc
+268 −0 test/files/gem004/pass-gem004-ifc4x3-vertex_as_topology_representation_type.ifc
+274 −0 test/files/gem004/pass-gem004-structural_curve_member.ifc
+274 −0 test/files/gem052/pass-gem052-structural_curve_member.ifc
+26 −0 test/files/ver000/na-ver000-no_owner_history.ifc
+27 −0 test/files/ver000/pass-ver000-owner_with_last_modify_date.ifc
+27 −0 test/files/ver000/pass-ver000-owner_without_versioning.ifc
+27 −0 test/files/ver000/pass-ver000-versioning_attributes_present.ifc
11 changes: 11 additions & 0 deletions backend/apps/ifc_validation/tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -330,6 +330,17 @@ def parse_info_subtask(self, prev_result, id, file_name, *args, **kwargs):

task.mark_as_initiated()

# try to open IFC file (catch segfaults)
try:
code = "import ifcopenshell; ifcopenshell.open('" + file_path + "')"
check_program = [sys.executable, '-c', code, file_path]
logger.debug(f'Command for {self.__qualname__}: {" ".join(check_program)}')
subprocess.run(check_program, check=True)

except subprocess.CalledProcessError as err:
task.mark_as_failed(err)
raise

# retrieve IFC info
try:
task.set_process_details(None, f"(module) ifcopenshell.open() for file '{file_path}')")
Expand Down
2 changes: 1 addition & 1 deletion docker/backend/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ RUN --mount=type=cache,target=/root/.cache \
pip install --no-cache-dir -r /app/backend/requirements.txt && \
# use version of ifcopenshell with desired schema parsing
# TODO: revert to pyPI when schema parsing is published in the future
wget -O /tmp/ifcopenshell_python.zip "https://s3.amazonaws.com/ifcopenshell-builds/ifcopenshell-python-311-v0.7.9-c18e4ea-linux64.zip" && \
wget -O /tmp/ifcopenshell_python.zip "https://s3.amazonaws.com/ifcopenshell-builds/ifcopenshell-python-311-v0.8.1-92b63a0-linux64.zip" && \
mkdir -p /opt/venv/lib/python3.11/site-packages && \
unzip -d /opt/venv/lib/python3.11/site-packages /tmp/ifcopenshell_python.zip && \
# some cleanup
Expand Down
1 change: 1 addition & 0 deletions docs/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
_build/
20 changes: 20 additions & 0 deletions docs/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Minimal makefile for Sphinx documentation
#

# You can set these variables from the command line, and also
# from the environment for the first two.
SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build
SOURCEDIR = .
BUILDDIR = _build

# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

.PHONY: help Makefile

# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
Binary file added docs/_static/dev_system_architecture_sketch.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/favicon.ico
Binary file not shown.
Binary file added docs/_static/user_auth.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/user_include_passed_na_etc.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/user_results_icons.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/user_results_icons_no_bSDD.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
33 changes: 33 additions & 0 deletions docs/conf.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Configuration file for the Sphinx documentation builder.
#
# For the full list of built-in configuration values, see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html

# -- Project information -----------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information

project = 'buildingSMART Validation Service'
copyright = '2024, buildingSMART International'
author = 'buildingSMART International'
release = '0.6'

# -- General configuration ---------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration

extensions = [
'sphinx_rtd_theme',
'myst_parser',
]

templates_path = ['_templates']
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']

html_favicon = '_static/favicon.ico'

# -- Options for HTML output -------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output

html_theme = 'sphinx_rtd_theme'
html_static_path = ['_static']

myst_links_external_new_tab = True
Loading