diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5e5ffb634..698f9299f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -23,7 +23,7 @@ set(PYTHONOCC_VERSION_MAJOR 7)
set(PYTHONOCC_VERSION_MINOR 4)
set(PYTHONOCC_VERSION_PATCH 0)
# Empty for official releases, set to -dev, -rc1, etc for development releases
-set(PYTHONOCC_VERSION_DEVEL -rc1)
+set(PYTHONOCC_VERSION_DEVEL)
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
diff --git a/INSTALL.md b/INSTALL.md
index 19e1a13b3..b5b10206c 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -55,8 +55,7 @@ If you have many cpus, you can increase the compilation speed with:
make -j$ncpus
-According to your machine/os/ncpus, the total compilation time shold be
-between 5 to 15 minutes.
+According to your machine/os/ncpus, the total compilation time should be around 15 minutes.
Then
diff --git a/NEWS b/NEWS
index 2fa6561ce..8d3d75f3b 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,26 @@
+==========================
+Version 7.4.0 - February2020
+
+This release requires opencascade 7.4.0
+
+* jupyter : improved webgl display, added utility fonctions (abb, oobb, mass computation etc.), fixed edges display wrong line type (dash)
+
+* display : added PySide2 to the backend list
+
+* DataExchange : fixes step loader when more than one root
+
+* DataExchange : added SVG exporter (possibility to render svg in jupyter)
+
+* wrapper : fixed for Standard_Integer parameters returned by reference
+
+* wrapper : improved wrapper for NCollection_DataMap
+
+* wrapper : removed unnecessary %nodefaultctor swig directive, that prevent using default constructor for many classes
+
+* demos : many fixes, improvements, and new examples
+
+* lgtm and codacy quality fixes
+
==========================
Version 7.4.0rc1 - December 2019
@@ -15,7 +38,6 @@ This release requires opencascade 7.4.0
* minor lgtm fixes
-
==========================
Version 7.4.0beta2 - December 2019
diff --git a/README.md b/README.md
index 57522de15..997cd291d 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@
[![Downloads Badge](https://anaconda.org/pythonocc/pythonocc-core/badges/downloads.svg)](https://anaconda.org/pythonocc/pythonocc-core)
[![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/tpaviot/pythonocc-core.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/tpaviot/pythonocc-core/context:python)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/67c121324b8d4f37bc27029464c87020)](https://www.codacy.com/app/tpaviot/pythonocc-core?utm_source=github.com&utm_medium=referral&utm_content=tpaviot/pythonocc-core&utm_campaign=Badge_Grade)
-[![Join the chat at https://gitter.im/tpaviot/pythonocc-core](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/tpaviot/pythonocc-core?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
+[![Binder](http://mybinder.org/badge.svg)](https://mybinder.org/v2/gh/tpaviot/pythonocc-binderhub/master)
pythonocc-core
--------------
@@ -12,30 +12,48 @@ About
-----
pythonocc is a python package whose purpose is to provide 3D modeling
-features. It is intended to developers who aim at developing
-CAD/PDM/PLM applications.
+features. It is intended to CAD/PDM/PLM and BIM related development.
-Latest release : [pythonocc-core 7.4.0rc1 (december 2019)](https://github.com/tpaviot/pythonocc-core/releases/tag/7.4.0rc1)
+Latest release : [pythonocc-core 7.4.0 (february 2020)](https://github.com/tpaviot/pythonocc-core/releases/tag/7.4.0)
-Build from source
------------------
+Features
+--------
+pythonocc provides the following features:
-Read the [INSTALL.md](https://github.com/tpaviot/pythonocc-core/blob/master/INSTALL.md) instructions where you find compilation instructions for all platforms.
+* a full access from Python to almost all af the thousand OpenCascade C++ classes. Classes and methods/functions share the same names, and, as possible as it can be, the same signature
+
+* 3D visualization from the most famous Python Gui (pyQt, PySide1 and 2, wxPython)
+
+* 3D visualization in a web browser using WebGl and/or x3dom renderers
+
+* 3D visualization and work within a jupyter notebook
+
+* Various utility Python classes/methods for DataExchange, Topology operations, intertia computations etc.
+
+Try online at mybinder
+----------------------
+
+Click [![Binder](http://mybinder.org/badge.svg)](https://mybinder.org/v2/gh/tpaviot/pythonocc-binderhub/master) to open a jupyter notebook running pythonocc-core 7.4.0, gmesh 4.5.2 () and latest IfcOpenshell () dev branch.
Download/install binaries for Linux/OSX/Windows
-----------------------------------------------
-pythonocc provides precompiled [conda packages](https://anaconda.org/pythonocc/pythonocc-core) (they depend on third part libraries made available from the dlr-sc and conda-forge conda channels) for python 3.5, 3.6 and 3.7. This will get you up and running in minutes whether you run win32/win64/linux64/osx64. Here is an example for python 3.7:
+pythonocc provides precompiled [conda packages](https://anaconda.org/pythonocc/pythonocc-core) (they depend on third part libraries made available from the dlr-sc and conda-forge conda channels) for python 3.6 and 3.7. This will get you up and running in minutes whether you run win32/win64/linux64/osx64. Here is an example for python 3.7:
```bash
# first create an environment
conda create --name=whatever-name python=3.7
source activate whatever-name
-conda install -c dlr-sc -c pythonocc pythonocc-core=7.4.0rc1
+conda install -c dlr-sc -c pythonocc pythonocc-core=7.4.0
```
Conda packages are provided for python 3.6 and 3.7.
+Build from source by yourself
+-----------------------------
+
+Read the [INSTALL.md](https://github.com/tpaviot/pythonocc-core/blob/master/INSTALL.md) instructions where you find compilation instructions for all platforms.
+
Other pythonocc related resources
---------------------------------
diff --git a/ci/conda/meta.yaml b/ci/conda/meta.yaml
index e4eb3e0d6..ea5a2970e 100644
--- a/ci/conda/meta.yaml
+++ b/ci/conda/meta.yaml
@@ -1,4 +1,4 @@
-{% set version = "7.4.0dev" %}
+{% set version = "7.4.0" %}
package:
name: pythonocc-core
diff --git a/cmake/__init__.py b/cmake/__init__.py
index 68b03d87a..0a2feee8b 100644
--- a/cmake/__init__.py
+++ b/cmake/__init__.py
@@ -1,66 +1,9 @@
-import unittest
-
PYTHONOCC_VERSION_MAJOR = 7
PYTHONOCC_VERSION_MINOR = 4
PYTHONOCC_VERSION_PATCH = 0
+
# Empty for official releases, set to -dev, -rc1, etc for development releases
-PYTHONOCC_VERSION_DEVEL = '-rc1'
+PYTHONOCC_VERSION_DEVEL = ''
VERSION = "%s.%s.%s%s" % (PYTHONOCC_VERSION_MAJOR, PYTHONOCC_VERSION_MINOR,
PYTHONOCC_VERSION_PATCH, PYTHONOCC_VERSION_DEVEL)
-
-
-class pythonoccVersionNumberError(Exception):
- pass
-
-
-def require_pythonocc_version(required_version):
- """ Check if the required pythonocc version is available.
- required_version : a string containing three values separated by a dot
- (eg '0.1.7.1', '0.19.4-rc1')
- returns True if required match vurrent version, or raise en error
- """
- spl = required_version.split('.')
- if len(spl) == 3:
- major, minor, patch_dev = spl
- if '-' in patch_dev:
- patch = patch_dev.split('-')[0]
- else:
- patch = patch_dev
- elif len(spl) == 2:
- major, minor = spl
- patch = 0
-
- if ((int(major) > PYTHONOCC_VERSION_MAJOR) or
- (int(major) == PYTHONOCC_VERSION_MAJOR and int(minor) > PYTHONOCC_VERSION_MINOR) or
- (int(major) == PYTHONOCC_VERSION_MAJOR and int(minor) == PYTHONOCC_VERSION_MINOR and
- int(patch) >= PYTHONOCC_VERSION_PATCH)):
- return True
- else:
- raise pythonoccVersionNumberError("Require pythonocc-%s but current is pythonocc-%s" % (required_version, VERSION))
-
-def test_require_pythonocc_version():
- # this one should raise an assertion error
- try:
- require_pythonocc_version('0.17.1')
- except pythonoccVersionNumberError:
- print("Exception correctly raised for 0.17.1 check")
- try:
- require_pythonocc_version('0.18')
- except pythonoccVersionNumberError:
- print("Exception correctly raised for 0.18 check")
- try:
- require_pythonocc_version('0.18.1')
- except pythonoccVersionNumberError:
- print("Exception correctly raised for 0.18.1 check")
- # the following should be ok
- require_pythonocc_version('0.18.2-dev')
- require_pythonocc_version('0.18.2')
- require_pythonocc_version('0.18.3-rc2')
- require_pythonocc_version('0.19')
- require_pythonocc_version('0.19.1')
- require_pythonocc_version('1.0')
-
-
-if __name__ == "__main__":
- test_require_pythonocc_version()